<?php

namespace App\Task;
use App\Models\Order;
use Hhxsv5\LaravelS\Swoole\Task\Task;
use Illuminate\Support\Facades\Redis;

class PushMsgTask extends Task
{
    private $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    // 处理任务的逻辑，运行在Task进程中，不能投递任务
    public function handle()
    {
        \Log::info(__CLASS__ . ':开始通知后台新订单handle start', [$this->data]);

        $orders = Order::query()->where(['status'=>1])->count('id');

        //群发上线信息
        $online_admins = Redis::smembers('ws:admin_group');

        foreach ($online_admins as $k => $v) {
            app('swoole')->push($v,json_encode(['type'=>'order_count','num'=>$orders]));
        }

    }

    // 可选的，完成事件，任务处理完后的逻辑，运行在Worker进程中，可以投递任务
    public function finish()
    {
        \Log::info(__CLASS__ . ':异步通知执行完成 finish start');
    }
}
